package com.ruoyi.fire.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.util.Date;

/**
 * @PackageName: com.iot.fire.domain
 * @ClassName: DGatewayMessage
 * @Description:
 * @Author: czl
 * @Date: 2025/11/10 22:35
 */
@Data
@TableName("d_gateway_message")
public class DGatewayMessage {

    @TableId(value = "id", type = IdType.ASSIGN_UUID)
    private String id;

    /**
     * 数据类型：Data_message为数据消息
     */
    @TableField(value = "DT")
    private String DT;

    /**
     * 版本V1.0
     */
    @TableField(value = "SV")
    private String SV;

    /**
     * 设备SN，CPUID唯一性
     */
    @TableField(value = "SN")
    private String SN;

    /**
     * 消息是否需要服务器返回，1是 0否，默认无0的情况出现
     */
    @TableField(value = "RF")
    private String RF;

    /**
     * 点位类型，如报警主机无类型，则为空，需要平台导入编码表来对应类型，若有则上传 长度随内容决定，详见工作表表内常见类型-状态，常见类型：感烟，感温，手报，声光灯
     */
    @TableField(value = "PT")
    private String PT;

    /**
     * 点位状态，长度随内容决定，火警，故障，反馈，启动，复位等信息，详见工作表表内常见类型-状态
     */
    @TableField(value = "PS")
    private String PS;

    /**
     * 主机号，若无为000或---或空
     */
    @TableField(value = "Host")
    private String Host;

    /**
     * 回路号，若无为000或---或空，长度随内容决定
     */
    @TableField(value = "`Loop`")
    private String Loop;

    /**
     * 地址号，编码号，若无为000或---或空，长度随内容决定
     */
    @TableField(value = "Addr")
    private String Addr;

    /**
     * 点位的位置信息，若主机无上传则为000或---或空，主机若无上传位置信息需平台导入点位的地址号和发送一致，比对对应点位位置信息
     */
    @TableField(value = "Position")
    private String Position;

    /**
     * 主机厂家及型号 长度随内容决定
     */
    @TableField(value = "HM")
    private String HM;

    /**
     * 为网关的时间，服务器接收可按服务器时间为准备
     */
    @TableField(value = "Time")
    private Date Time = new Date();

    /**
     * 包序列，最大65535，心跳和事件单独计数，每发一次自增1，包序列固定长度为5位。服务器接收到包序列，返回给设备
     */
    @TableField(value = "US")
    private String US;
}
